Contact information:
Nebu Pookins (
nebu@nebupookins.net)
Summary:
- 11 years desktop development experience, mainly focused on Java.
- 4 years web development experience, mainly focused on PHP, Java and Scala.
- Placed 1st in a compiler optimization competition, beating Sun/Oracle's javac compiler which placed 4th.
- Team Lead on 4 projects with a team sizes of 9, 9, 3 and 7 respectively:
- Web development for government employee insurance management web app using Struts on Tomcat.
- Research and Development in compiler and analysis technology for legacy languages like COBOL (the "IRIS" Project).
- Greenfield exploratory project into an OSLC compliant web infrasturcture for ALM tools.
- Web development for RnD project management web app using Scala.
- The key skill that I bring to the table is the ability to master new technologies very quickly. I have a proven track record in this regard:
- At every company I joined, I am quickly promoted to a leadership position due to my initiative in formalizing the workflow processes (e.g. establishing a documentation wiki, a bug tracker, etc.)
- During the IRIS project, I had to develop compiler analysis tools (parsers, symbol table builders, control flow analysis, etc.) for several languages despite having limited (or in some cases) no prior exposure to those languages, based only on tutorials and language specifications I could find online.
- The IT lead at the South Carolina government specifically asked for me to lead a team of developers on a 4 month project involving Struts, despite knowing that I had no prior experience with this technology.
- Following my performance on that project, they then asked me to take lead the lead on a Ruby on Rails project, despite not having any experience (yet!) on this technology either.
Academic/Employment History:
-
McGill University
Computer Science Bachelor's Degree
2001-2005
-
Benchmark Canada
Team Lead
April 2005 - February 2011
-
Antportal Corp.
Team Lead
February 2011 - Present
Major Projects:
RnD Tax Credits
- Time-line:
- February 2011 to present
- Overview:
- Develop from scratch a web application to allow companies to keep track of their experimental development and scientific research efforts for the purposes of claiming tax credits.
- Technologies used:
- Java, Clojure, Scala, JavaScript
- Play Framework, ExpressJS, Node.JS
- Amazon EC2, Google App Engine, Heroku
- BigTable, ProsgreSQL, MySQL, CouchDB, MongoDB
- JQuery, Socket.IO, DataTable, TreeTable
- Key Accomplishments beyond original scope of the project:
- We actually ended up pushing the boundaries of the scope of this project several times, such as looking at a "severless" peer-to-peer replication architecture, which explains why there were so many competing (almost mutually exclusive) technologies involved in this project.
AE2010 - South Carolina Web App for Managing Employee Insurance Information
- Time-line:
- April 2010 to February 2011
- Overview:
- The business-rules of the application (who is allowed to apply for what insurance plans, etc.) changes every year due to federal government legislation changes. The project consisted of implementing the new rules for the 2010-2011 version of the site.
- Technologies used:
- JSPs, Servlet, Struts on Tomcat.
- JavaScript & AJAX via Prototype and YUI.
- Challenges:
- I had no prior experience with any of these technologies, and learned them as I went.
- The client had lost several key staff members, and so there were several large components for which no one had any familiarity, both in terms of how the technology works and what the desired business functionalities were.
- The web app had to communicate to a legacy backend implemented in NATURAL and ADABASE, using undocumented APIs.
- The initial state of the source code, as handed to me, was such that the build scripts failed with compile errors, and all of the unit tests were failing due to not being maintained as the requirements changed.
- Key accomplishments beyond original scope of the project:
- Reverse engineered their semi-manual build procedure by examining scripts and interviewing people, and converted to a fully automated build system.
- Reverse engineered the transaction state-transition flow and provided documentation to the client that explained their own workflow to them.
IRIS - Universal Source Code Analysis Tool
- Time-line
- April 2005 to February 2011
- Overview:
- Benchmark Canada's flagship product for source code analysis of legacy code, to aid in modernizing (e.g. porting COBOL code to .NET)
- Technologies used:
- Java, Eclipse, EFS, EMF, CDO, XMI, OSGi, etc...
- MDA, KDM, SMM, STM, VMF, VSM, etc...
- JTB, JavaCC, ANTLR
- Etc. too many to list.
- Challenges:
- This is an open area of research, and so frequently we are the first ones answering the questions being investigated, and thus cannot rely on Google or other typical tricks for figuring out how to solve a given problem.
- Because we are working at the very limits of source-code analysis, we are often faced with problems which have literally been proven to be impossible to solve (see "Halting Problem" or "Rice's Theorem").
- In order to be able to implement source code analysis for a language, we must first learn that language. And thus we must be able to quickly learn new languages constantly, to the level of precision that a compiler-writer would need to know said language.
- Key Accomplishments beyond original scope of the project:
- Converted from previous practice of communicating design documents via e-mail to using a centralized wiki, so that everyone always had access to the latest revision of any given document, and lowered barriers to contributions from anyone.
- Established several internal PowerPoint presentations, tutorials, and lesson plans so that new members to the IRIS team could quickly get up to speed with the dizzying number of technologies involved.
JTBRPG - A Tool to Assist in Developing Role Playing Games.
- Timeline:
- 2008 to 2010
- Overview:
- An open source personal project designed to allow users to create tile-based role playing games without requiring any programming knowledge.
- Technologies used:
- Key Accomplishments beyond original scope of the project:
- Mentioned as a valuable tool for game development in Andrew Davison's "Killer Game Programming in Java" (ISBN 0596007302)
NNR - Videogame scores tracking web application
- Timeline:
- 2008 to 2010
- Overview:
- A personal project designed to track scores in the "Dance Dance Revolution" video game, and then "recommending" an opponent of a similar skill level to challenge/practice with.
- Technologies used:
- LAMP (Linux, Apache, MySQL, PHP)
- Key Accomplishments beyond original scope of the project:
- Managed to attract over 3500 users worldwide (from Canada to Japan) solely from word of mouth.
- Spawned a whole series of copy-cat sites.
- The spiritual-sequel to the videogame, "In The Groove", added as a new feature direct support for uploading scores to websites, thus showing the influence of this site.
- Ownership of the site sold for an undisclosed sum.
ALM - Web infrasturcture for ALM tools.
- Timeline:
- April 2010 to February 2011
- Overview:
- An infrastructure for ALM web tools (bug trackers, requirements management, project planning, etc.) to integrate together. See http://www.youtube.com/watch?v=B2vqL8fujgE
- Technologies used:
- OSLC, ALM
- RESTful web services, Apache Sling, IBM Jazz
- PHP
- Challenges:
- OSLC is a relatively new initiative, and the standards and specifications are still being established.